package com.fy.market.strategy.model.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * 状态枚举
 * @author fwq
 * @date 2025-09-03
 */
@Getter
@AllArgsConstructor
public enum StatusEnum {

    /**
     * 启用
     */
    ENABLE(1, "启用"),

    /**
     * 禁用
     */
    DISABLE(0, "禁用");

    private final Integer code;
    private final String info;

    /**
     * 根据code获取枚举
     *
     * @param code 状态码
     * @return 状态枚举
     */
    public static StatusEnum of(Integer code) {
        if (code == null) {
            return null;
        }
        for (StatusEnum statusEnum : values()) {
            if (statusEnum.getCode().equals(code)) {
                return statusEnum;
            }
        }
        return null;
    }
    
    /**
     * 根据info获取枚举
     *
     * @param info 状态信息
     * @return 状态枚举
     */
    public static StatusEnum ofInfo(String info) {
        if (info == null) {
            return null;
        }
        return Arrays.stream(values())
                .filter(statusEnum -> statusEnum.getInfo().equals(info))
                .findFirst()
                .orElse(null);
    }
}